package org.example.oop;

import java.nio.file.Watchable;

/**
 * 岗位职责：写书
 */
interface Bookable{
    boolean doWriteBook();
}
/**岗位职责：企业内部培训*/
interface Trainable{
    boolean doTrain();
}
/**岗位职责：企业项目设计*/
interface Projectable{
    boolean doDesign();
}

/**
 * 雇员
 */
abstract class Employee{
    String name;
    int age;
    int salary;
    public Employee(String name,int age,int salary){
        this.name=name;
        this.age=age;
        this.salary=salary;
    }
    /**上班打卡*/
    abstract boolean doClockIn();
    /**下班打卡*/
    abstract boolean doClockOut();
    /**完成工作*/
    boolean doFinishWork(){
        System.out.println("完成工作");
        return true;
    }
}
/**教研总监*/
class TeachingDirector extends Employee implements Bookable,Trainable,Projectable {

    public TeachingDirector(String name,int age,int salary){
       super(name,age,salary);
    }
    @Override
    boolean doClockIn() {
        System.out.println("早上10点上班打卡");
        return false;
    }

    @Override
    boolean doClockOut() {
        System.out.println("下午19:00下班打卡");
        return false;
    }

    @Override
    public boolean doWriteBook() {
        System.out.println("设计并编写书的目录结构");
        return true;
    }

    @Override
    public boolean doTrain() {
        System.out.println("面向讲师、项目经理、职业发展、前端等进行培训");
        return true;
    }

    @Override
    public boolean doDesign() {
        System.out.println("负责授课过程中的阶段项目总体设计和规划");
        return true;
    }
}
class ProjectManager extends Employee implements Bookable{

    public ProjectManager(String name,int age,int salary){
        super(name,age,salary);
    }
    @Override
    public boolean doWriteBook() {
        System.out.println("负责编写书籍中的每小节的练习题");
        return true;
    }

    @Override
    boolean doClockIn() {
        System.out.println("上午9:00上班打卡");
        return true;
    }

    @Override
    boolean doClockOut() {
        System.out.println("下午18:00下班打卡");
        return true;
    }
}
/**班主任*/
class ClassTeacher extends Employee{

    public ClassTeacher(String name,int age,int salary){
        super(name,age,salary);
    }

    @Override
    boolean doClockIn() {
        System.out.println("早上8:30上班打卡");
        return true;
    }

    @Override
    boolean doClockOut() {
        System.out.println("下午17:30下班打卡");
        return true;
    }
}
public class WorkerTests {
    public static void main(String[] args) {
        TeachingDirector director=new TeachingDirector("周华飞",35,100000);
        director.doClockIn();
    }
}
